import config from '@/config/config.js';
import {
	getToken,
	setToken
} from '@/util/auth';
import tool from '@/util/common.js';
let timeout = 10000;
const baseUrl = config.baseUrl;
const request = config => {
	var platform = null
	// #ifdef APP
	platform = 'App'
	// #endif
	// #ifdef H5
	platform = 'H5'
	// #endif
	// #ifdef MP-WEIXIN
	platform = 'WechatMiniProgram'
	// #endif
	config.header = {
		platform: platform,
		'Referrer-Policy': 'no-referrer'
	}
	if (config.method == 'post') {}

	const token = getToken();
	if (token) config.header['token'] = token;
	return new Promise((resolve, reject) => {
		uni.request({
			method: config.method || 'get',
			timeout: config.timeout || timeout,
			url: config.baseUrl || baseUrl + config.url,
			data: config.data,
			header: config.header,
			dataType: 'json',
			success(res) {
				switch (res.data.code) {
					case 401:
						// tool.toastTip(res.data.msg, 'none', 1500);
						uni.navigateTo({
							url: '/templatePage/login/demo4/demo4'
						})
						break;
					case 500:
						tool.toastTip(res.data.msg, 'none', 1500);
						break;
					default:
						/* 默认执行操作 */
						break;
				}
				/**
				 * @description 请求成功返回的数据
				 */
				resolve(res.data)
			},
			fail: (error) => {
				if (error.header.token) {
					setToken(error.header)
				}
				reject(error)
			},
			complete(res) {
				if (res.header.token) {
					setToken(res.header.token)
				}
				/**
				 * @description 请求完做的事
				 */
				uni.hideLoading()
			}
		})

	})
}

/**
 *  @description 暴露出request请求供其他业务使用
 */

export default request